Метод Ньютона для розв’язування систем нелінійних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
ІКТА
Факультет:
ТГВ
Кафедра:
Не вказано

Інформація про роботу

Рік:
2012
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні методи дослідження інформаційних процесів та систем

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ, МОЛОДІ ТА СПОРТУ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» ІКТА кафедра ЗІ             ЗВІТ До лабораторної роботи №5 з курсу: «Комп’ютерні методи дослідження інформаційних процесів і систем» на тему: «Метод Ньютона для розв’язування систем нелінійних рівнянь» Варіант №2           Львів 2012 Мета роботи - ознайомлення з найпоширенішим ітераційним методом розв’язування систем нелінійних рівнянь – методом Ньютона. Завдання – розв’язати систему нелінійних рівнянь стандартним методом Ньютона /  при              / Текст програми using System; using System.Collections.Generic; using System.Text; namespace Njuton { class Program { static void Main(string[] args) { NjutonStandart NS = new NjutonStandart(); NS.Calculations(); Console.ReadKey(); } } class NjutonStandart { double x1, x2, E, delta_x1, delta_x2, xx1, xx2; double[,] J = new double[2, 2]; double[,] RJ = new double[2, 2]; double[] f = new double[2]; double[] x = new double[2]; public void Calculations() { Console.WriteLine("Введiть значення x1:"); x1 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введiть значення x2:"); x2 = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введiть похибку E(0.00001 i бiльше):"); E = Convert.ToDouble(Console.ReadLine()); // delta_x1 = 1000; delta_x2 = 9999999; Function(-0.096,0.08); // Console.WriteLine("{0} {1}", f[0], f[1]); // ReciprocalJakobian(x1, x2); do { ReciprocalJakobian(x1, x2); Function(x1, x2); x[0] = RJ[0, 0] * f[0] + RJ[0, 1] * f[1]; x[1] = RJ[1, 0] * f[0] + RJ[1, 1] * f[1]; // Console.WriteLine("{0} {1} ", x[0], x[1]); xx1 = x1 - x[0]; xx2 = x2 - x[1]; // Console.WriteLine("{0} {1} ", xx1, xx2); delta_x1 = Math.Abs(xx1 - x1); delta_x2 = Math.Abs(xx2 - x2); x1 = xx1; x2 = xx2; // Console.WriteLine("{0} {1} ", x1, x2); } while ((delta_x1 > E) && (delta_x2 > E)); Console.WriteLine("\n Уточненi коренi рiвнянь: \n x1= {0}\t x2 = {1}\n", x1, x2); } public void Jakobian(double x1, double x2) { J[0, 0] = 1 - 2 * x1; J[0, 1] = 1.6 * x2; J[1, 0] = -2 * x2; J[1, 1] = 1 - 2 * x1; } public void ReciprocalJakobian(double x1, double x2) { Jakobian(x1, x2); double detJ = J[0, 0] * J[1, 1] - J[0, 1] * J[1, 0]; RJ[0, 0] = (1 / detJ) * J[1, 1]; RJ[0, 1] = (1 / detJ) * -J[1, 0]; RJ[1, 0] = (1 / detJ) * -J[0, 1]; RJ[1, 1] = (1 / detJ) * J[0, 0]; // Console.WriteLine("{0} {1} {2} {3}", RJ[0,0], RJ[0,1], RJ[1,0], RJ[1,1]); } public void Function(double x1, double x2) { f[0] = x1 - Math.Pow(x1, 2) + 0.8 * Math.Pow(x2, 2) + 0.1; f[1] = x2 - 2 * x1 * x2 - 0.1; } } }
Антиботан аватар за замовчуванням

29.05.2013 23:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини